package cn.zqy.demo.day08;
/*
* ==在引用类型中是地址比较，字符串用equals比较
* public boolean equals( Object obj ): Object 是任何对象
* equals有对称星
* 推荐写法："abc".equals(str)       不推荐 str.equals("abc")
* */
public class Demo02StringEquals {
    public static void main(String[] args) {
        String str1 = "Hello";
        String str2 = "Hello";
        char[] c = new char[] {'H', 'e', 'l', 'l', 'o'};
        String str3 = new String(c);

        // ==比较， 直接用""创建的字符串在字符串常量池中，str1和str2共用。
        System.out.println(str1 == str2); // true
        System.out.println(str2 == str3); // false
        System.out.println(str1 == str3); //false

        System.out.println("===================");
        System.out.println(str1.equals(str2));// true
        System.out.println(str2.equals(str1));// true
        System.out.println(str2.equals(str3));// true

        // 推荐写法，毕竟equals能接受任何值
        System.out.println("Hello".equals(str1));// true
        // 会导致空指针
        String str5 = null;
        //System.out.println(str5.equals("Hello")); 异常

        // 不区分大小写
        System.out.println("abc12323".equals("ABC12323")); // false
        System.out.println("abc12323".equalsIgnoreCase("ABC12323")); // true
    }
}
